<?php
/**
 * 跃飞科技版权所有 @2017
 * User: 钟贵廷
 * Date: 2017/5/23
 * Time: 17:39
 */

namespace app\admin\controller;
use think\Db;
use think\Loader;
use think\Request;
use app\admin\model\Baidu;

class ArticleCat extends Admin
{
    /**
     * 分类列表
     */
    public function lst()
    {
        $article_cat = model('ArticleCat');
        $data =  $article_cat->select()->toArray();
        $article_cat_data =  $article_cat->tree($data);
        $cate_type = $article_cat->getCatType();

        $this->assign('article_cat_data', $article_cat_data);
        $this->assign('cat_type', $cate_type);
        return $this->fetch();
    }

    /**
     * 添加分类
     */
    public function add()
    {
        if(Request::instance()->isPost())
        {
            $validate = Loader::validate('ArticleCat');
            $articleCat = input('post.');
            // 接收并验证表单
            if($validate->check($articleCat))
            {
                $res = Db::name('article_cat')->insert($articleCat);
                if($res)
                {
                    //主动推送链接到百度收录
                    $id = Db::name('article_cat')->getLastInsID();
                    $urls = url('home/news/index',['id'=>$id],true,true);
                    $baiduModel = new Baidu();
                    $baiduModel->sendUrl($urls);
                    $this->success('添加成功', url('lst'));
                }
                else
                {
                    $this->success('添加失败');
                }
            }
            else
            {
                $this->error($validate->getError());
            }
        }

        $article_cat =  model('ArticleCat');
        $data =  $article_cat->select();
        $article_cat_data =  $article_cat->tree($data);
        $this->assign('article_cat_data', $article_cat_data);
        $cate_type = $article_cat->getCatType();
        $this->assign('cat_type', $cate_type);
        return $this->fetch();
    }


    public  function save($cat_id)
    {
        if(Request::instance()->isPost())
        {
            $validate = Loader::validate('ArticleCat');
            $articleCat = input('post.');
            // 接收并验证表单
            if($validate->check($articleCat))
            {
                $res = Db::name('article_cat')->update($articleCat);
                if($res)
                {
                    $this->success('修改成功', url('lst'));
                }
                else
                {
                    $this->success('修改失败');
                }
            }
            else
            {
                $this->error($validate->getError());
            }
        }
        // 取出要修改的记录
        $article_cat_model = model('ArticleCat');
        $article_cat_data  = $article_cat_model->find($cat_id);
        //取出下拉数据
        $data =  $article_cat_model->field("cat_id,cat_name,parent_id")->select();
        $article_cat =  $article_cat_model->tree($data);
        $this->assign('article_cat',$article_cat);
        $this->assign('article_cat_data', $article_cat_data);
        //取出分类类型数据
        $cat_type =  $article_cat_model -> getCatType();
        $this->assign('cat_type', $cat_type);
        return $this->fetch();
    }


    public function delete($cat_id)
    {
        $article_cat = new \app\admin\model\ArticleCat();
        $data =  $article_cat->field('cat_id,cat_name,parent_id')->select();
        $article_cat_data =  $article_cat->getAllSubCatByParentId($data,$cat_id);
        if(!empty($article_cat_data))
        {
            $this->error("该类下有子类，先删除子类");
        }
        else
        {
            $cat_type =  db('article_cat')->where(array("cat_id"=>$cat_id))->value('cat_type');
            $arr = array(2,3,4);
            if(in_array($cat_type,$arr ))
            {
                $this->error("系统分类|网店信息|帮助分类分类不能删除，请检查");
            }
            else
            {
                db('article_cat')->delete($cat_id);
                //删除该子类下的所有文章
                db('article')->where(array('cat_id'=>$cat_id))->delete();
                $this->success('成功删除该分类以及分类下的文章！');
            }
        }
    }
}